import QtQuick 1.0
import "../Delegates/"
import "../Util/Util.js" as Util
import "../WebAccess/PictureAPI.js" as PictureAPI

ListViewBase {
    id: _root
    x: 0
    y: 0
    height: parent.height
    width: parent.width

    scrollBarBaseColor: _Setting.scrollBarBaseColor
    scrollBarColor: _Setting.scrollBarColor
    scrollBarOpacity: _Setting.scrollBarOpacity

    density: _Device.density

    // 左クリックした時の処理
    // 必須の共通メソッド
    // Item object = currentItem;   これデリゲート
    function clickLeft(object){
        // クリックアイテムをハイライトする
        currentIndex = indexAt(object.x, object.y);
    }

    // 右クリックした時の処理
    function clickRight(object){
        //情報を一時保存
        _selectItemInfo.itemId = object.itemId;
        _selectItemInfo.screenName = object.itemTitle;
        _selectItemInfo.message = object.itemText;//Util.decodeHtmlSymbol(object.itemText);
        _selectItemInfo.isFavorite = false;// (object.isFavorite === "true") ? true : false;
        // 位置を作る
        if(_selectItemInfo.mouse_x < 0){
            _selectItemInfo.mouse_x = object.width/2;
        }
        if(_selectItemInfo.mouse_y < 0){
            _selectItemInfo.mouse_y = object.y + _root.parent.y + object.height/3 - contentY;
        }

        //メニューを出す
        _menuContainer.state = "MenuContextTimeline";
    }

    delegate: Delegate{
        id: _delegate
        width: _root.width
        acceptedButtons: Qt.LeftButton | Qt.RightButton

        itemIndex: parseInt(id_str)
        itemTitle: from_user
        itemMessage: makeItemMessage()
        itemInformation: makeItemInfomation()
        iconPath: profile_image_url
        iconVisible: true

        property string itemText: text

        // 本文作る
        function makeItemMessage(){
            var ret = text;

            //URLを探す
            if(entities === undefined){
            }else if(entities.length === 0){
            }else if(entities.urls === undefined){
            }else{
                var i=0;
                var urls = null;
                // urlの抽出
                for(i=0; i<entities.urls.length; i++){
                    if(urls === null){
                        urls = new Array();
                    }
                    urls.push(entities.urls[i].url);
                }
                if(urls === null){
                }else{
                    //画像があれば指定する
                    PictureAPI.getPcitureUrl(urls, this);

                    //URLをリンクにする
                    for(i=0; i<urls.length; i++){
                        ret = ret.replace(urls[i], "<a href='" + urls[i] + "'>" + urls[i] + "</a>");
                    }
                }
            }
            return ret;
        }

        //情報を成形する
        function makeItemInfomation(){
            var ret = created_at;
            var dd = new Date(created_at);

            ret = Qt.formatDateTime(dd, "yyyy/MM/dd hh:mm:ss");

            if(source.length !== 0){
                ret += " / " + Util.decodeHtmlSymbol(source);
            }
            return ret;
        }


        onClicked: {
            // 上位にクリックイベント通す
            _root.itemClicked(mouse);
            // クリックしたらフォーカス移動
            _root.forceActiveFocus();

            //マウス情報保存
            // _root.parent.parent.parent = _loaderContent
            _selectItemInfo.mouse_x = _root.parent.parent.parent.x + mouse.x;
            _selectItemInfo.mouse_y = mouse.y + _delegate.y + _root.parent.y - contentY;
            _selectItemInfo.container = _root.parent;

            //次の動作
            switch(prevPressedButtons){
            case Qt.LeftButton:
                clickLeft(_delegate);

                break;
            case Qt.RightButton:
                clickRight(_delegate);
                break;
            default:
                break;
            }
        }
    }
}
